3e5a4e683HKVU-sxtagrDasRB8eBVw linux-2.4.27-xen-sparse/mm/swapfile.c
41180721bNns9Na7w1nJ0ZVt8bhUNA linux-2.4.27-xen-sparse/mm/vmalloc.c
41505c57WAd5l1rlfCLNSCpx9J13vA linux-2.4.27-xen-sparse/net/core/skbuff.c
-413aa1d0oNP8HXLvfPuMe6cSroUfSA linux-2.6.9-patches/agpgart.patch
-413aa1d0ewvSv-ohnNnQQNGsbPTTNA linux-2.6.9-patches/drm.patch
40f562372u3A7_kfbYYixPHJJxYUxA linux-2.6.9-xen-sparse/arch/xen/Kconfig
40f56237utH41NPukqHksuNf29IC9A linux-2.6.9-xen-sparse/arch/xen/Kconfig.drivers
40f56237penAAlWVBVDpeQZNFIg8CA linux-2.6.9-xen-sparse/arch/xen/Makefile
413cb3b5eKxnzoodEqaWn2wrPnHWnA netbsd-2.0-xen-sparse/sys/arch/xen/xen/xencons.c
413cb3b5F56TvQWAmO5TsuzhtzLFPQ netbsd-2.0-xen-sparse/sys/arch/xen/xen/xenkbc.c
413cb3b53nyOv1OIeDSsCXhBFDXvJA netbsd-2.0-xen-sparse/sys/nfs/files.nfs
+413aa1d0oNP8HXLvfPuMe6cSroUfSA patches/linux-2.6.9/agpgart.patch
+413aa1d0ewvSv-ohnNnQQNGsbPTTNA patches/linux-2.6.9/drm.patch
+418abc69J3F638vPO9MYoDGeYilxoQ patches/linux-2.6.9/nettel.patch
40e1b09db5mN69Ijj0X_Eol-S7dXiw tools/Make.defs
3f776bd1Hy9rn69ntXBhPReUFw9IEA tools/Makefile
4124b307nRyK3dhn1hAsvrY76NuV3g tools/check/Makefile
netbsd-*-xen0/*
netbsd-*-xenU/*
netbsd-*.patch
-patches/*
+patches/tmp/*
pristine-*
tools/*/build/lib*/*.py
tools/balloon/balloon
xen/xen
xen/xen-syms
xen/xen.*
-install/boot/System.map-2.6.9-xen0
-install/boot/System.map-2.6.9-xenU
-install/boot/config-2.6.9-xen0
-install/boot/config-2.6.9-xenU
-install/boot/vmlinux-syms-2.6.9-xen0
-install/boot/vmlinux-syms-2.6.9-xenU
-install/boot/vmlinuz-2.6.9-xen0
-install/boot/vmlinuz-2.6.9-xenU
-install/boot/xen-syms
-install/boot/xen.gz
-install/etc/xen/scripts/block-enbd
-install/etc/xen/scripts/block-file
-install/etc/xen/scripts/network
-install/etc/xen/scripts/vif-bridge
-install/etc/xen/xend-config.sxp
-install/etc/xen/xmexample1
-install/etc/xen/xmexample2
-install/lib/modules/2.6.9-xen0/build
-install/lib/modules/2.6.9-xen0/kernel/crypto/crc32c.ko
-install/lib/modules/2.6.9-xen0/kernel/crypto/des.ko
-install/lib/modules/2.6.9-xen0/kernel/crypto/md5.ko
-install/lib/modules/2.6.9-xen0/kernel/crypto/sha1.ko
-install/lib/modules/2.6.9-xen0/kernel/drivers/pcmcia/ds.ko
-install/lib/modules/2.6.9-xen0/kernel/drivers/pcmcia/pcmcia_core.ko
-install/lib/modules/2.6.9-xen0/kernel/drivers/pcmcia/yenta_socket.ko
-install/lib/modules/2.6.9-xen0/kernel/fs/exportfs/exportfs.ko
-install/lib/modules/2.6.9-xen0/kernel/fs/fat/fat.ko
-install/lib/modules/2.6.9-xen0/kernel/fs/msdos/msdos.ko
-install/lib/modules/2.6.9-xen0/kernel/fs/nfsd/nfsd.ko
-install/lib/modules/2.6.9-xen0/kernel/fs/vfat/vfat.ko
-install/lib/modules/2.6.9-xen0/kernel/net/ipv4/netfilter/ip_conntrack.ko
-install/lib/modules/2.6.9-xen0/kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko
-install/lib/modules/2.6.9-xen0/kernel/net/ipv4/netfilter/ip_tables.ko
-install/lib/modules/2.6.9-xen0/modules.alias
-install/lib/modules/2.6.9-xen0/modules.ccwmap
-install/lib/modules/2.6.9-xen0/modules.dep
-install/lib/modules/2.6.9-xen0/modules.ieee1394map
-install/lib/modules/2.6.9-xen0/modules.inputmap
-install/lib/modules/2.6.9-xen0/modules.isapnpmap
-install/lib/modules/2.6.9-xen0/modules.pcimap
-install/lib/modules/2.6.9-xen0/modules.symbols
-install/lib/modules/2.6.9-xen0/modules.usbmap
-install/lib/modules/2.6.9-xen0/source
-install/lib/modules/2.6.9-xenU/build
-install/lib/modules/2.6.9-xenU/kernel/crypto/crc32c.ko
-install/lib/modules/2.6.9-xenU/kernel/crypto/md5.ko
-install/lib/modules/2.6.9-xenU/kernel/drivers/block/loop.ko
-install/lib/modules/2.6.9-xenU/kernel/drivers/block/nbd.ko
-install/lib/modules/2.6.9-xenU/kernel/drivers/scsi/scsi_mod.ko
-install/lib/modules/2.6.9-xenU/kernel/drivers/scsi/sd_mod.ko
-install/lib/modules/2.6.9-xenU/kernel/fs/fat/fat.ko
-install/lib/modules/2.6.9-xenU/kernel/fs/msdos/msdos.ko
-install/lib/modules/2.6.9-xenU/kernel/fs/vfat/vfat.ko
-install/lib/modules/2.6.9-xenU/kernel/lib/libcrc32c.ko
-install/lib/modules/2.6.9-xenU/source
-install/lib/python/xen/__init__.py
-install/lib/python/xen/lowlevel/__init__.py
-install/lib/python/xen/sv/CreateDomain.py
-install/lib/python/xen/sv/Daemon.py
-install/lib/python/xen/sv/DomInfo.py
-install/lib/python/xen/sv/DomList.py
-install/lib/python/xen/sv/GenTabbed.py
-install/lib/python/xen/sv/HTMLBase.py
-install/lib/python/xen/sv/Main.py
-install/lib/python/xen/sv/MigrateDomain.py
-install/lib/python/xen/sv/NodeInfo.py
-install/lib/python/xen/sv/RestoreDomain.py
-install/lib/python/xen/sv/SaveDomain.py
-install/lib/python/xen/sv/TabView.py
-install/lib/python/xen/sv/Wizard.py
-install/lib/python/xen/sv/__init__.py
-install/lib/python/xen/sv/params.py
-install/lib/python/xen/sv/util.py
-install/lib/python/xen/util/Brctl.py
-install/lib/python/xen/util/__init__.py
-install/lib/python/xen/util/console_client.py
-install/lib/python/xen/util/ip.py
-install/lib/python/xen/util/tempfile.py
-install/lib/python/xen/xend/Args.py
-install/lib/python/xen/xend/Blkctl.py
-install/lib/python/xen/xend/EventServer.py
-install/lib/python/xen/xend/EventTypes.py
-install/lib/python/xen/xend/PrettyPrint.py
-install/lib/python/xen/xend/Vifctl.py
-install/lib/python/xen/xend/XendAsynchProtocol.py
-install/lib/python/xen/xend/XendClient.py
-install/lib/python/xen/xend/XendConsole.py
-install/lib/python/xen/xend/XendDB.py
-install/lib/python/xen/xend/XendDmesg.py
-install/lib/python/xen/xend/XendDomain.py
-install/lib/python/xen/xend/XendDomainConfig.py
-install/lib/python/xen/xend/XendDomainInfo.py
-install/lib/python/xen/xend/XendError.py
-install/lib/python/xen/xend/XendLogging.py
-install/lib/python/xen/xend/XendMigrate.py
-install/lib/python/xen/xend/XendNode.py
-install/lib/python/xen/xend/XendProtocol.py
-install/lib/python/xen/xend/XendRoot.py
-install/lib/python/xen/xend/XendVnet.py
-install/lib/python/xen/xend/__init__.py
-install/lib/python/xen/xend/encode.py
-install/lib/python/xen/xend/server/SrvBase.py
-install/lib/python/xen/xend/server/SrvConsole.py
-install/lib/python/xen/xend/server/SrvConsoleDir.py
-install/lib/python/xen/xend/server/SrvDaemon.py
-install/lib/python/xen/xend/server/SrvDeviceDir.py
-install/lib/python/xen/xend/server/SrvDir.py
-install/lib/python/xen/xend/server/SrvDmesg.py
-install/lib/python/xen/xend/server/SrvDomain.py
-install/lib/python/xen/xend/server/SrvDomainDir.py
-install/lib/python/xen/xend/server/SrvEventDir.py
-install/lib/python/xen/xend/server/SrvNode.py
-install/lib/python/xen/xend/server/SrvRoot.py
-install/lib/python/xen/xend/server/SrvServer.py
-install/lib/python/xen/xend/server/SrvVnetDir.py
-install/lib/python/xen/xend/server/SrvXendLog.py
-install/lib/python/xen/xend/server/__init__.py
-install/lib/python/xen/xend/server/blkif.py
-install/lib/python/xen/xend/server/channel.py
-install/lib/python/xen/xend/server/console.py
-install/lib/python/xen/xend/server/controller.py
-install/lib/python/xen/xend/server/domain.py
-install/lib/python/xen/xend/server/messages.py
-install/lib/python/xen/xend/server/netif.py
-install/lib/python/xen/xend/server/params.py
-install/lib/python/xen/xend/sxp.py
-install/lib/python/xen/xm/__init__.py
-install/lib/python/xen/xm/create.py
-install/lib/python/xen/xm/destroy.py
-install/lib/python/xen/xm/help.py
-install/lib/python/xen/xm/main.py
-install/lib/python/xen/xm/migrate.py
-install/lib/python/xen/xm/opts.py
-install/lib/python/xen/xm/shutdown.py
-install/usr/bin/miniterm
-install/usr/bin/xen_cpuperf
-install/usr/bin/xencons
-install/usr/bin/xentrace
-install/usr/bin/xentrace_format
-install/usr/include/xc.h
-install/usr/include/xen/COPYING
-install/usr/include/xen/arch-x86_32.h
-install/usr/include/xen/arch-x86_64.h
-install/usr/include/xen/dom0_ops.h
-install/usr/include/xen/event_channel.h
-install/usr/include/xen/grant_table.h
-install/usr/include/xen/io/blkif.h
-install/usr/include/xen/io/domain_controller.h
-install/usr/include/xen/io/netif.h
-install/usr/include/xen/linux/privcmd.h
-install/usr/include/xen/linux/suspend.h
-install/usr/include/xen/physdev.h
-install/usr/include/xen/sched_ctl.h
-install/usr/include/xen/trace.h
-install/usr/include/xen/xen.h
-install/usr/man/man1/xentrace_format.1
-install/usr/man/man8/xentrace.8
-install/usr/sbin/netfix
-install/usr/sbin/xend
-install/usr/sbin/xensv
-install/usr/sbin/xfrd
-install/usr/sbin/xm
-install/var/xen/sv/Main.rpy
-install/var/xen/sv/images/destroy.png
-install/var/xen/sv/images/finish.png
-install/var/xen/sv/images/left-end-highlight.jpg
-install/var/xen/sv/images/left-end-no-highlight.jpg
-install/var/xen/sv/images/middle-highlight.jpg
-install/var/xen/sv/images/middle-no-highlight.jpg
-install/var/xen/sv/images/next.png
-install/var/xen/sv/images/orb_01.jpg
-install/var/xen/sv/images/orb_02.jpg
-install/var/xen/sv/images/pause.png
-install/var/xen/sv/images/previous.png
-install/var/xen/sv/images/reboot.png
-install/var/xen/sv/images/right-end-highlight.jpg
-install/var/xen/sv/images/right-end-no-highlight.jpg
-install/var/xen/sv/images/seperator-left-highlight.jpg
-install/var/xen/sv/images/seperator-right-highlight.jpg
-install/var/xen/sv/images/seperator.jpg
-install/var/xen/sv/images/shutdown.png
-install/var/xen/sv/images/small-destroy.png
-install/var/xen/sv/images/small-pause.png
-install/var/xen/sv/images/small-unpause.png
-install/var/xen/sv/images/unpause.png
-install/var/xen/sv/images/xen.png
-install/var/xen/sv/inc/script.js
-install/var/xen/sv/inc/style.css
+install/*
+
# clean, but blow away kernel build tree plus tar balls
mrproper: clean
- rm -rf dist patches
+ rm -rf dist patches/tmp
for i in $(ALLKERNELS) ; do $(MAKE) -f buildconfigs/$$i delete ; done
for i in $(ALLSPARSETREES) ; do $(MAKE) -f buildconfigs/Rules.mk $$i-mrproper ; done
$(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_MOD_PATH=$(INSTALL_DIR) modules_install
$(MAKE) -C $(LINUX_DIR) ARCH=xen INSTALL_PATH=$(INSTALL_DIR) install
-patches/ebtables.diff:
- mkdir -p patches
+patches/tmp/ebtables.diff:
+ mkdir -p patches/tmp
wget http://www.cl.cam.ac.uk/netos/xen/downloads/ebtables-brnf-5_vs_2.4.27.diff.gz -O- | gunzip -c > $@
-$(LINUX_DIR)/include/linux/autoconf.h: patches/ebtables.diff
+$(LINUX_DIR)/include/linux/autoconf.h: patches/tmp/ebtables.diff
$(LINUX_DIR)/include/linux/autoconf.h: pristine-linux-$(LINUX_VER)
rm -rf $(LINUX_DIR)
cp -al pristine-linux-$(LINUX_VER) $(LINUX_DIR)
sed -e 's/^EXTRAVERSION.*/&-$(EXTRAVERSION)/' Makefile >Mk.tmp ; \
rm -f Makefile ; mv Mk.tmp Makefile )
# add ebtables patch
- ( cd $(LINUX_DIR) ; patch -p1 -F3 < ../patches/ebtables.diff )
+ ( cd $(LINUX_DIR) ; patch -p1 -F3 < ../patches/tmp/ebtables.diff )
# Re-use config from install dir if one exits else use default config
[ -r $(INSTALL_DIR)/boot/config-$(FULLVERSION) ] && \
cp $(INSTALL_DIR)/boot/config-$(FULLVERSION) $(LINUX_DIR)/.config \
+++ /dev/null
---- linux-2.6.8.1/drivers/char/agp/ali-agp.c 2004-08-14 11:55:35.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/ali-agp.c 2004-09-05 05:55:58.876495340 +0100
-@@ -150,7 +150,7 @@
- pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
- pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
- (((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
-- virt_to_phys(addr)) | ALI_CACHE_FLUSH_EN ));
-+ virt_to_bus(addr)) | ALI_CACHE_FLUSH_EN ));
- return addr;
- }
-
-@@ -174,7 +174,7 @@
- pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
- pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
- (((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
-- virt_to_phys(addr)) | ALI_CACHE_FLUSH_EN));
-+ virt_to_bus(addr)) | ALI_CACHE_FLUSH_EN));
- agp_generic_destroy_page(addr);
- }
-
---- linux-2.6.8.1/drivers/char/agp/amd-k7-agp.c 2004-08-14 11:56:24.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/amd-k7-agp.c 2004-09-05 05:55:58.877495108 +0100
-@@ -43,7 +43,7 @@
-
- SetPageReserved(virt_to_page(page_map->real));
- global_cache_flush();
-- page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
-+ page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
- PAGE_SIZE);
- if (page_map->remapped == NULL) {
- ClearPageReserved(virt_to_page(page_map->real));
-@@ -152,7 +152,7 @@
-
- agp_bridge->gatt_table_real = (u32 *)page_dir.real;
- agp_bridge->gatt_table = (u32 *)page_dir.remapped;
-- agp_bridge->gatt_bus_addr = virt_to_phys(page_dir.real);
-+ agp_bridge->gatt_bus_addr = virt_to_bus(page_dir.real);
-
- /* Get the address for the gart region.
- * This is a bus address even on the alpha, b/c its
-@@ -166,7 +166,7 @@
- /* Calculate the agp offset */
- for (i = 0; i < value->num_entries / 1024; i++, addr += 0x00400000) {
- page_dir.remapped[GET_PAGE_DIR_OFF(addr)] =
-- virt_to_phys(amd_irongate_private.gatt_pages[i]->real);
-+ virt_to_bus(amd_irongate_private.gatt_pages[i]->real);
- page_dir.remapped[GET_PAGE_DIR_OFF(addr)] |= 0x00000001;
- }
-
---- linux-2.6.8.1/drivers/char/agp/amd64-agp.c 2004-08-14 11:55:47.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/amd64-agp.c 2004-09-05 05:55:58.877495108 +0100
-@@ -212,7 +212,7 @@
-
- static int amd_8151_configure(void)
- {
-- unsigned long gatt_bus = virt_to_phys(agp_bridge->gatt_table_real);
-+ unsigned long gatt_bus = virt_to_bus(agp_bridge->gatt_table_real);
-
- /* Configure AGP regs in each x86-64 host bridge. */
- for_each_nb() {
-@@ -521,7 +521,7 @@
- {
- struct agp_bridge_data *bridge = pci_get_drvdata(pdev);
-
-- release_mem_region(virt_to_phys(bridge->gatt_table_real),
-+ release_mem_region(virt_to_bus(bridge->gatt_table_real),
- amd64_aperture_sizes[bridge->aperture_size_idx].size);
- agp_remove_bridge(bridge);
- agp_put_bridge(bridge);
---- linux-2.6.8.1/drivers/char/agp/ati-agp.c 2004-08-14 11:55:48.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/ati-agp.c 2004-09-05 05:55:58.877495108 +0100
-@@ -64,7 +64,7 @@
-
- /* CACHE_FLUSH(); */
- global_cache_flush();
-- page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
-+ page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
- PAGE_SIZE);
- if (page_map->remapped == NULL || err) {
- ClearPageReserved(virt_to_page(page_map->real));
---- linux-2.6.8.1/drivers/char/agp/backend.c 2004-08-14 11:55:47.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/backend.c 2004-09-05 05:55:58.878494876 +0100
-@@ -142,7 +142,7 @@
- return -ENOMEM;
- }
-
-- bridge->scratch_page_real = virt_to_phys(addr);
-+ bridge->scratch_page_real = virt_to_bus(addr);
- bridge->scratch_page =
- bridge->driver->mask_memory(bridge->scratch_page_real, 0);
- }
-@@ -186,7 +186,7 @@
- err_out:
- if (bridge->driver->needs_scratch_page)
- bridge->driver->agp_destroy_page(
-- phys_to_virt(bridge->scratch_page_real));
-+ bus_to_virt(bridge->scratch_page_real));
- if (got_gatt)
- bridge->driver->free_gatt_table();
- if (got_keylist) {
-@@ -211,7 +211,7 @@
- if (bridge->driver->agp_destroy_page &&
- bridge->driver->needs_scratch_page)
- bridge->driver->agp_destroy_page(
-- phys_to_virt(bridge->scratch_page_real));
-+ bus_to_virt(bridge->scratch_page_real));
- }
-
- static const drm_agp_t drm_agp = {
---- linux-2.6.8.1/drivers/char/agp/generic.c 2004-08-14 11:55:10.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/generic.c 2004-09-05 05:55:58.879494644 +0100
-@@ -127,7 +127,7 @@
- }
- if (curr->page_count != 0) {
- for (i = 0; i < curr->page_count; i++) {
-- agp_bridge->driver->agp_destroy_page(phys_to_virt(curr->memory[i]));
-+ agp_bridge->driver->agp_destroy_page(bus_to_virt(curr->memory[i]));
- }
- }
- agp_free_key(curr->key);
-@@ -181,7 +181,7 @@
- return NULL;
- }
- new->memory[i] =
-- agp_bridge->driver->mask_memory(virt_to_phys(addr), type);
-+ agp_bridge->driver->mask_memory(virt_to_bus(addr), type);
- new->page_count++;
- }
-
-@@ -636,6 +636,7 @@
- int i;
- void *temp;
- struct page *page;
-+ dma_addr_t dma;
-
- /* The generic routines can't handle 2 level gatt's */
- if (agp_bridge->driver->size_type == LVL2_APER_SIZE)
-@@ -674,8 +675,10 @@
- break;
- }
-
-- table = (char *) __get_free_pages(GFP_KERNEL,
-- page_order);
-+ table = dma_alloc_coherent(
-+ &agp_bridge->dev->dev,
-+ PAGE_SIZE << page_order, &dma,
-+ GFP_KERNEL);
-
- if (table == NULL) {
- i++;
-@@ -706,7 +709,9 @@
- size = ((struct aper_size_info_fixed *) temp)->size;
- page_order = ((struct aper_size_info_fixed *) temp)->page_order;
- num_entries = ((struct aper_size_info_fixed *) temp)->num_entries;
-- table = (char *) __get_free_pages(GFP_KERNEL, page_order);
-+ table = dma_alloc_coherent(
-+ &agp_bridge->dev->dev,
-+ PAGE_SIZE << page_order, &dma, GFP_KERNEL);
- }
-
- if (table == NULL)
-@@ -721,7 +726,7 @@
- agp_gatt_table = (void *)table;
-
- agp_bridge->driver->cache_flush();
-- agp_bridge->gatt_table = ioremap_nocache(virt_to_phys(table),
-+ agp_bridge->gatt_table = ioremap_nocache(virt_to_bus(table),
- (PAGE_SIZE * (1 << page_order)));
- agp_bridge->driver->cache_flush();
-
-@@ -729,11 +734,12 @@
- for (page = virt_to_page(table); page <= virt_to_page(table_end); page++)
- ClearPageReserved(page);
-
-- free_pages((unsigned long) table, page_order);
-+ dma_free_coherent(&agp_bridge->dev->dev, PAGE_SIZE<<page_order,
-+ table, dma);
-
- return -ENOMEM;
- }
-- agp_bridge->gatt_bus_addr = virt_to_phys(agp_bridge->gatt_table_real);
-+ agp_bridge->gatt_bus_addr = virt_to_bus(table);
-
- /* AK: bogus, should encode addresses > 4GB */
- for (i = 0; i < num_entries; i++)
-@@ -785,7 +791,8 @@
- for (page = virt_to_page(table); page <= virt_to_page(table_end); page++)
- ClearPageReserved(page);
-
-- free_pages((unsigned long) agp_bridge->gatt_table_real, page_order);
-+ dma_free_coherent(&agp_bridge->dev->dev, PAGE_SIZE<<page_order,
-+ agp_bridge->gatt_table_real, agp_bridge->gatt_bus_addr);
-
- agp_gatt_table = NULL;
- agp_bridge->gatt_table = NULL;
---- linux-2.6.8.1/drivers/char/agp/hp-agp.c 2004-08-14 11:55:59.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/hp-agp.c 2004-09-05 05:55:58.879494644 +0100
-@@ -110,7 +110,7 @@
- hp->gart_size = HP_ZX1_GART_SIZE;
- hp->gatt_entries = hp->gart_size / hp->io_page_size;
-
-- hp->io_pdir = phys_to_virt(INREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE));
-+ hp->io_pdir = bus_to_virt(INREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE));
- hp->gatt = &hp->io_pdir[HP_ZX1_IOVA_TO_PDIR(hp->gart_base)];
-
- if (hp->gatt[0] != HP_ZX1_SBA_IOMMU_COOKIE) {
-@@ -248,7 +248,7 @@
- agp_bridge->mode = INREG32(hp->lba_regs, hp->lba_cap_offset + PCI_AGP_STATUS);
-
- if (hp->io_pdir_owner) {
-- OUTREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE, virt_to_phys(hp->io_pdir));
-+ OUTREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE, virt_to_bus(hp->io_pdir));
- OUTREG64(hp->ioc_regs, HP_ZX1_TCNFG, hp->io_tlb_ps);
- OUTREG64(hp->ioc_regs, HP_ZX1_IMASK, ~(HP_ZX1_IOVA_SIZE - 1));
- OUTREG64(hp->ioc_regs, HP_ZX1_IBASE, hp->iova_base | 0x1);
---- linux-2.6.8.1/drivers/char/agp/i460-agp.c 2004-08-14 11:55:34.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/i460-agp.c 2004-09-05 05:55:58.879494644 +0100
-@@ -371,7 +371,7 @@
- }
- memset(lp->alloced_map, 0, map_size);
-
-- lp->paddr = virt_to_phys(lpage);
-+ lp->paddr = virt_to_bus(lpage);
- lp->refcount = 0;
- atomic_add(I460_KPAGES_PER_IOPAGE, &agp_bridge->current_memory_agp);
- return 0;
-@@ -382,7 +382,7 @@
- kfree(lp->alloced_map);
- lp->alloced_map = NULL;
-
-- free_pages((unsigned long) phys_to_virt(lp->paddr), I460_IO_PAGE_SHIFT - PAGE_SHIFT);
-+ free_pages((unsigned long) bus_to_virt(lp->paddr), I460_IO_PAGE_SHIFT - PAGE_SHIFT);
- atomic_sub(I460_KPAGES_PER_IOPAGE, &agp_bridge->current_memory_agp);
- }
-
---- linux-2.6.8.1/drivers/char/agp/intel-agp.c 2004-08-14 11:55:32.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/intel-agp.c 2004-09-05 05:55:58.880494412 +0100
-@@ -285,7 +285,7 @@
- if (new == NULL)
- return NULL;
-
-- new->memory[0] = virt_to_phys(addr);
-+ new->memory[0] = virt_to_bus(addr);
- if (pg_count == 4) {
- /* kludge to get 4 physical pages for ARGB cursor */
- new->memory[1] = new->memory[0] + PAGE_SIZE;
-@@ -328,10 +328,10 @@
- agp_free_key(curr->key);
- if(curr->type == AGP_PHYS_MEMORY) {
- if (curr->page_count == 4)
-- i8xx_destroy_pages(phys_to_virt(curr->memory[0]));
-+ i8xx_destroy_pages(bus_to_virt(curr->memory[0]));
- else
- agp_bridge->driver->agp_destroy_page(
-- phys_to_virt(curr->memory[0]));
-+ bus_to_virt(curr->memory[0]));
- vfree(curr->memory);
- }
- kfree(curr);
---- linux-2.6.8.1/drivers/char/agp/intel-mch-agp.c 2004-08-14 11:54:49.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/intel-mch-agp.c 2004-09-05 05:55:58.880494412 +0100
-@@ -51,7 +51,7 @@
- if (new == NULL)
- return NULL;
-
-- new->memory[0] = agp_bridge->driver->mask_memory(virt_to_phys(addr), type);
-+ new->memory[0] = agp_bridge->driver->mask_memory(virt_to_bus(addr), type);
- new->page_count = 1;
- new->num_scratch_pages = 1;
- new->type = AGP_PHYS_MEMORY;
-@@ -63,7 +63,7 @@
- {
- agp_free_key(curr->key);
- if(curr->type == AGP_PHYS_MEMORY) {
-- agp_bridge->driver->agp_destroy_page(phys_to_virt(curr->memory[0]));
-+ agp_bridge->driver->agp_destroy_page(bus_to_virt(curr->memory[0]));
- vfree(curr->memory);
- }
- kfree(curr);
---- linux-2.6.8.1/drivers/char/agp/sworks-agp.c 2004-08-14 11:55:10.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/sworks-agp.c 2004-09-05 05:55:58.881494180 +0100
-@@ -51,7 +51,7 @@
- }
- SetPageReserved(virt_to_page(page_map->real));
- global_cache_flush();
-- page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
-+ page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
- PAGE_SIZE);
- if (page_map->remapped == NULL) {
- ClearPageReserved(virt_to_page(page_map->real));
-@@ -164,7 +164,7 @@
- for(i = 0; i < 1024; i++) {
- serverworks_private.scratch_dir.remapped[i] = (unsigned long) agp_bridge->scratch_page;
- page_dir.remapped[i] =
-- virt_to_phys(serverworks_private.scratch_dir.real);
-+ virt_to_bus(serverworks_private.scratch_dir.real);
- page_dir.remapped[i] |= 0x00000001;
- }
-
-@@ -177,7 +177,7 @@
-
- agp_bridge->gatt_table_real = (u32 *)page_dir.real;
- agp_bridge->gatt_table = (u32 *)page_dir.remapped;
-- agp_bridge->gatt_bus_addr = virt_to_phys(page_dir.real);
-+ agp_bridge->gatt_bus_addr = virt_to_bus(page_dir.real);
-
- /* Get the address for the gart region.
- * This is a bus address even on the alpha, b/c its
-@@ -191,7 +191,7 @@
-
- for(i = 0; i < value->num_entries / 1024; i++) {
- page_dir.remapped[i] =
-- virt_to_phys(serverworks_private.gatt_pages[i]->real);
-+ virt_to_bus(serverworks_private.gatt_pages[i]->real);
- page_dir.remapped[i] |= 0x00000001;
- }
-
---- linux-2.6.8.1/drivers/char/agp/uninorth-agp.c 2004-08-14 11:55:32.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/agp/uninorth-agp.c 2004-09-05 05:55:58.881494180 +0100
-@@ -200,7 +200,7 @@
-
- agp_bridge->gatt_table_real = (u32 *) table;
- agp_bridge->gatt_table = (u32 *)table;
-- agp_bridge->gatt_bus_addr = virt_to_phys(table);
-+ agp_bridge->gatt_bus_addr = virt_to_bus(table);
-
- for (i = 0; i < num_entries; i++) {
- agp_bridge->gatt_table[i] =
---- linux-2.6.8.1/include/asm-i386/agp.h 2004-08-14 11:54:47.000000000 +0100
-+++ linux-2.6.8.1-xen0/include/asm-i386/agp.h 2004-09-05 05:57:26.040268956 +0100
-@@ -3,6 +3,7 @@
-
- #include <asm/pgtable.h>
- #include <asm/cacheflush.h>
-+#include <asm/system.h>
-
- /*
- * Functions to keep the agpgart mappings coherent with the MMU.
-@@ -19,6 +20,6 @@
- /* Could use CLFLUSH here if the cpu supports it. But then it would
- need to be called for each cacheline of the whole page so it may not be
- worth it. Would need a page for it. */
--#define flush_agp_cache() asm volatile("wbinvd":::"memory")
-+#define flush_agp_cache() wbinvd()
-
- #endif
+++ /dev/null
---- linux-2.6.8.1/drivers/char/drm/ati_pcigart.h 2004-08-14 11:56:14.000000000 +0100
-+++ linux-2.6.8.1-xen0/drivers/char/drm/ati_pcigart.h 2004-09-05 06:14:51.751782846 +0100
-@@ -158,7 +158,7 @@
- ret = 1;
-
- #if defined(__i386__) || defined(__x86_64__)
-- asm volatile ( "wbinvd" ::: "memory" );
-+ wbinvd();
- #else
- mb();
- #endif
--- /dev/null
+--- linux-2.6.8.1/drivers/char/agp/ali-agp.c 2004-08-14 11:55:35.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/ali-agp.c 2004-09-05 05:55:58.876495340 +0100
+@@ -150,7 +150,7 @@
+ pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
+ pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
+ (((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
+- virt_to_phys(addr)) | ALI_CACHE_FLUSH_EN ));
++ virt_to_bus(addr)) | ALI_CACHE_FLUSH_EN ));
+ return addr;
+ }
+
+@@ -174,7 +174,7 @@
+ pci_read_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL, &temp);
+ pci_write_config_dword(agp_bridge->dev, ALI_CACHE_FLUSH_CTRL,
+ (((temp & ALI_CACHE_FLUSH_ADDR_MASK) |
+- virt_to_phys(addr)) | ALI_CACHE_FLUSH_EN));
++ virt_to_bus(addr)) | ALI_CACHE_FLUSH_EN));
+ agp_generic_destroy_page(addr);
+ }
+
+--- linux-2.6.8.1/drivers/char/agp/amd-k7-agp.c 2004-08-14 11:56:24.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/amd-k7-agp.c 2004-09-05 05:55:58.877495108 +0100
+@@ -43,7 +43,7 @@
+
+ SetPageReserved(virt_to_page(page_map->real));
+ global_cache_flush();
+- page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
++ page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
+ PAGE_SIZE);
+ if (page_map->remapped == NULL) {
+ ClearPageReserved(virt_to_page(page_map->real));
+@@ -152,7 +152,7 @@
+
+ agp_bridge->gatt_table_real = (u32 *)page_dir.real;
+ agp_bridge->gatt_table = (u32 *)page_dir.remapped;
+- agp_bridge->gatt_bus_addr = virt_to_phys(page_dir.real);
++ agp_bridge->gatt_bus_addr = virt_to_bus(page_dir.real);
+
+ /* Get the address for the gart region.
+ * This is a bus address even on the alpha, b/c its
+@@ -166,7 +166,7 @@
+ /* Calculate the agp offset */
+ for (i = 0; i < value->num_entries / 1024; i++, addr += 0x00400000) {
+ page_dir.remapped[GET_PAGE_DIR_OFF(addr)] =
+- virt_to_phys(amd_irongate_private.gatt_pages[i]->real);
++ virt_to_bus(amd_irongate_private.gatt_pages[i]->real);
+ page_dir.remapped[GET_PAGE_DIR_OFF(addr)] |= 0x00000001;
+ }
+
+--- linux-2.6.8.1/drivers/char/agp/amd64-agp.c 2004-08-14 11:55:47.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/amd64-agp.c 2004-09-05 05:55:58.877495108 +0100
+@@ -212,7 +212,7 @@
+
+ static int amd_8151_configure(void)
+ {
+- unsigned long gatt_bus = virt_to_phys(agp_bridge->gatt_table_real);
++ unsigned long gatt_bus = virt_to_bus(agp_bridge->gatt_table_real);
+
+ /* Configure AGP regs in each x86-64 host bridge. */
+ for_each_nb() {
+@@ -521,7 +521,7 @@
+ {
+ struct agp_bridge_data *bridge = pci_get_drvdata(pdev);
+
+- release_mem_region(virt_to_phys(bridge->gatt_table_real),
++ release_mem_region(virt_to_bus(bridge->gatt_table_real),
+ amd64_aperture_sizes[bridge->aperture_size_idx].size);
+ agp_remove_bridge(bridge);
+ agp_put_bridge(bridge);
+--- linux-2.6.8.1/drivers/char/agp/ati-agp.c 2004-08-14 11:55:48.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/ati-agp.c 2004-09-05 05:55:58.877495108 +0100
+@@ -64,7 +64,7 @@
+
+ /* CACHE_FLUSH(); */
+ global_cache_flush();
+- page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
++ page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
+ PAGE_SIZE);
+ if (page_map->remapped == NULL || err) {
+ ClearPageReserved(virt_to_page(page_map->real));
+--- linux-2.6.8.1/drivers/char/agp/backend.c 2004-08-14 11:55:47.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/backend.c 2004-09-05 05:55:58.878494876 +0100
+@@ -142,7 +142,7 @@
+ return -ENOMEM;
+ }
+
+- bridge->scratch_page_real = virt_to_phys(addr);
++ bridge->scratch_page_real = virt_to_bus(addr);
+ bridge->scratch_page =
+ bridge->driver->mask_memory(bridge->scratch_page_real, 0);
+ }
+@@ -186,7 +186,7 @@
+ err_out:
+ if (bridge->driver->needs_scratch_page)
+ bridge->driver->agp_destroy_page(
+- phys_to_virt(bridge->scratch_page_real));
++ bus_to_virt(bridge->scratch_page_real));
+ if (got_gatt)
+ bridge->driver->free_gatt_table();
+ if (got_keylist) {
+@@ -211,7 +211,7 @@
+ if (bridge->driver->agp_destroy_page &&
+ bridge->driver->needs_scratch_page)
+ bridge->driver->agp_destroy_page(
+- phys_to_virt(bridge->scratch_page_real));
++ bus_to_virt(bridge->scratch_page_real));
+ }
+
+ static const drm_agp_t drm_agp = {
+--- linux-2.6.8.1/drivers/char/agp/generic.c 2004-08-14 11:55:10.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/generic.c 2004-09-05 05:55:58.879494644 +0100
+@@ -127,7 +127,7 @@
+ }
+ if (curr->page_count != 0) {
+ for (i = 0; i < curr->page_count; i++) {
+- agp_bridge->driver->agp_destroy_page(phys_to_virt(curr->memory[i]));
++ agp_bridge->driver->agp_destroy_page(bus_to_virt(curr->memory[i]));
+ }
+ }
+ agp_free_key(curr->key);
+@@ -181,7 +181,7 @@
+ return NULL;
+ }
+ new->memory[i] =
+- agp_bridge->driver->mask_memory(virt_to_phys(addr), type);
++ agp_bridge->driver->mask_memory(virt_to_bus(addr), type);
+ new->page_count++;
+ }
+
+@@ -636,6 +636,7 @@
+ int i;
+ void *temp;
+ struct page *page;
++ dma_addr_t dma;
+
+ /* The generic routines can't handle 2 level gatt's */
+ if (agp_bridge->driver->size_type == LVL2_APER_SIZE)
+@@ -674,8 +675,10 @@
+ break;
+ }
+
+- table = (char *) __get_free_pages(GFP_KERNEL,
+- page_order);
++ table = dma_alloc_coherent(
++ &agp_bridge->dev->dev,
++ PAGE_SIZE << page_order, &dma,
++ GFP_KERNEL);
+
+ if (table == NULL) {
+ i++;
+@@ -706,7 +709,9 @@
+ size = ((struct aper_size_info_fixed *) temp)->size;
+ page_order = ((struct aper_size_info_fixed *) temp)->page_order;
+ num_entries = ((struct aper_size_info_fixed *) temp)->num_entries;
+- table = (char *) __get_free_pages(GFP_KERNEL, page_order);
++ table = dma_alloc_coherent(
++ &agp_bridge->dev->dev,
++ PAGE_SIZE << page_order, &dma, GFP_KERNEL);
+ }
+
+ if (table == NULL)
+@@ -721,7 +726,7 @@
+ agp_gatt_table = (void *)table;
+
+ agp_bridge->driver->cache_flush();
+- agp_bridge->gatt_table = ioremap_nocache(virt_to_phys(table),
++ agp_bridge->gatt_table = ioremap_nocache(virt_to_bus(table),
+ (PAGE_SIZE * (1 << page_order)));
+ agp_bridge->driver->cache_flush();
+
+@@ -729,11 +734,12 @@
+ for (page = virt_to_page(table); page <= virt_to_page(table_end); page++)
+ ClearPageReserved(page);
+
+- free_pages((unsigned long) table, page_order);
++ dma_free_coherent(&agp_bridge->dev->dev, PAGE_SIZE<<page_order,
++ table, dma);
+
+ return -ENOMEM;
+ }
+- agp_bridge->gatt_bus_addr = virt_to_phys(agp_bridge->gatt_table_real);
++ agp_bridge->gatt_bus_addr = virt_to_bus(table);
+
+ /* AK: bogus, should encode addresses > 4GB */
+ for (i = 0; i < num_entries; i++)
+@@ -785,7 +791,8 @@
+ for (page = virt_to_page(table); page <= virt_to_page(table_end); page++)
+ ClearPageReserved(page);
+
+- free_pages((unsigned long) agp_bridge->gatt_table_real, page_order);
++ dma_free_coherent(&agp_bridge->dev->dev, PAGE_SIZE<<page_order,
++ agp_bridge->gatt_table_real, agp_bridge->gatt_bus_addr);
+
+ agp_gatt_table = NULL;
+ agp_bridge->gatt_table = NULL;
+--- linux-2.6.8.1/drivers/char/agp/hp-agp.c 2004-08-14 11:55:59.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/hp-agp.c 2004-09-05 05:55:58.879494644 +0100
+@@ -110,7 +110,7 @@
+ hp->gart_size = HP_ZX1_GART_SIZE;
+ hp->gatt_entries = hp->gart_size / hp->io_page_size;
+
+- hp->io_pdir = phys_to_virt(INREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE));
++ hp->io_pdir = bus_to_virt(INREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE));
+ hp->gatt = &hp->io_pdir[HP_ZX1_IOVA_TO_PDIR(hp->gart_base)];
+
+ if (hp->gatt[0] != HP_ZX1_SBA_IOMMU_COOKIE) {
+@@ -248,7 +248,7 @@
+ agp_bridge->mode = INREG32(hp->lba_regs, hp->lba_cap_offset + PCI_AGP_STATUS);
+
+ if (hp->io_pdir_owner) {
+- OUTREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE, virt_to_phys(hp->io_pdir));
++ OUTREG64(hp->ioc_regs, HP_ZX1_PDIR_BASE, virt_to_bus(hp->io_pdir));
+ OUTREG64(hp->ioc_regs, HP_ZX1_TCNFG, hp->io_tlb_ps);
+ OUTREG64(hp->ioc_regs, HP_ZX1_IMASK, ~(HP_ZX1_IOVA_SIZE - 1));
+ OUTREG64(hp->ioc_regs, HP_ZX1_IBASE, hp->iova_base | 0x1);
+--- linux-2.6.8.1/drivers/char/agp/i460-agp.c 2004-08-14 11:55:34.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/i460-agp.c 2004-09-05 05:55:58.879494644 +0100
+@@ -371,7 +371,7 @@
+ }
+ memset(lp->alloced_map, 0, map_size);
+
+- lp->paddr = virt_to_phys(lpage);
++ lp->paddr = virt_to_bus(lpage);
+ lp->refcount = 0;
+ atomic_add(I460_KPAGES_PER_IOPAGE, &agp_bridge->current_memory_agp);
+ return 0;
+@@ -382,7 +382,7 @@
+ kfree(lp->alloced_map);
+ lp->alloced_map = NULL;
+
+- free_pages((unsigned long) phys_to_virt(lp->paddr), I460_IO_PAGE_SHIFT - PAGE_SHIFT);
++ free_pages((unsigned long) bus_to_virt(lp->paddr), I460_IO_PAGE_SHIFT - PAGE_SHIFT);
+ atomic_sub(I460_KPAGES_PER_IOPAGE, &agp_bridge->current_memory_agp);
+ }
+
+--- linux-2.6.8.1/drivers/char/agp/intel-agp.c 2004-08-14 11:55:32.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/intel-agp.c 2004-09-05 05:55:58.880494412 +0100
+@@ -285,7 +285,7 @@
+ if (new == NULL)
+ return NULL;
+
+- new->memory[0] = virt_to_phys(addr);
++ new->memory[0] = virt_to_bus(addr);
+ if (pg_count == 4) {
+ /* kludge to get 4 physical pages for ARGB cursor */
+ new->memory[1] = new->memory[0] + PAGE_SIZE;
+@@ -328,10 +328,10 @@
+ agp_free_key(curr->key);
+ if(curr->type == AGP_PHYS_MEMORY) {
+ if (curr->page_count == 4)
+- i8xx_destroy_pages(phys_to_virt(curr->memory[0]));
++ i8xx_destroy_pages(bus_to_virt(curr->memory[0]));
+ else
+ agp_bridge->driver->agp_destroy_page(
+- phys_to_virt(curr->memory[0]));
++ bus_to_virt(curr->memory[0]));
+ vfree(curr->memory);
+ }
+ kfree(curr);
+--- linux-2.6.8.1/drivers/char/agp/intel-mch-agp.c 2004-08-14 11:54:49.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/intel-mch-agp.c 2004-09-05 05:55:58.880494412 +0100
+@@ -51,7 +51,7 @@
+ if (new == NULL)
+ return NULL;
+
+- new->memory[0] = agp_bridge->driver->mask_memory(virt_to_phys(addr), type);
++ new->memory[0] = agp_bridge->driver->mask_memory(virt_to_bus(addr), type);
+ new->page_count = 1;
+ new->num_scratch_pages = 1;
+ new->type = AGP_PHYS_MEMORY;
+@@ -63,7 +63,7 @@
+ {
+ agp_free_key(curr->key);
+ if(curr->type == AGP_PHYS_MEMORY) {
+- agp_bridge->driver->agp_destroy_page(phys_to_virt(curr->memory[0]));
++ agp_bridge->driver->agp_destroy_page(bus_to_virt(curr->memory[0]));
+ vfree(curr->memory);
+ }
+ kfree(curr);
+--- linux-2.6.8.1/drivers/char/agp/sworks-agp.c 2004-08-14 11:55:10.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/sworks-agp.c 2004-09-05 05:55:58.881494180 +0100
+@@ -51,7 +51,7 @@
+ }
+ SetPageReserved(virt_to_page(page_map->real));
+ global_cache_flush();
+- page_map->remapped = ioremap_nocache(virt_to_phys(page_map->real),
++ page_map->remapped = ioremap_nocache(virt_to_bus(page_map->real),
+ PAGE_SIZE);
+ if (page_map->remapped == NULL) {
+ ClearPageReserved(virt_to_page(page_map->real));
+@@ -164,7 +164,7 @@
+ for(i = 0; i < 1024; i++) {
+ serverworks_private.scratch_dir.remapped[i] = (unsigned long) agp_bridge->scratch_page;
+ page_dir.remapped[i] =
+- virt_to_phys(serverworks_private.scratch_dir.real);
++ virt_to_bus(serverworks_private.scratch_dir.real);
+ page_dir.remapped[i] |= 0x00000001;
+ }
+
+@@ -177,7 +177,7 @@
+
+ agp_bridge->gatt_table_real = (u32 *)page_dir.real;
+ agp_bridge->gatt_table = (u32 *)page_dir.remapped;
+- agp_bridge->gatt_bus_addr = virt_to_phys(page_dir.real);
++ agp_bridge->gatt_bus_addr = virt_to_bus(page_dir.real);
+
+ /* Get the address for the gart region.
+ * This is a bus address even on the alpha, b/c its
+@@ -191,7 +191,7 @@
+
+ for(i = 0; i < value->num_entries / 1024; i++) {
+ page_dir.remapped[i] =
+- virt_to_phys(serverworks_private.gatt_pages[i]->real);
++ virt_to_bus(serverworks_private.gatt_pages[i]->real);
+ page_dir.remapped[i] |= 0x00000001;
+ }
+
+--- linux-2.6.8.1/drivers/char/agp/uninorth-agp.c 2004-08-14 11:55:32.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/agp/uninorth-agp.c 2004-09-05 05:55:58.881494180 +0100
+@@ -200,7 +200,7 @@
+
+ agp_bridge->gatt_table_real = (u32 *) table;
+ agp_bridge->gatt_table = (u32 *)table;
+- agp_bridge->gatt_bus_addr = virt_to_phys(table);
++ agp_bridge->gatt_bus_addr = virt_to_bus(table);
+
+ for (i = 0; i < num_entries; i++) {
+ agp_bridge->gatt_table[i] =
+--- linux-2.6.8.1/include/asm-i386/agp.h 2004-08-14 11:54:47.000000000 +0100
++++ linux-2.6.8.1-xen0/include/asm-i386/agp.h 2004-09-05 05:57:26.040268956 +0100
+@@ -3,6 +3,7 @@
+
+ #include <asm/pgtable.h>
+ #include <asm/cacheflush.h>
++#include <asm/system.h>
+
+ /*
+ * Functions to keep the agpgart mappings coherent with the MMU.
+@@ -19,6 +20,6 @@
+ /* Could use CLFLUSH here if the cpu supports it. But then it would
+ need to be called for each cacheline of the whole page so it may not be
+ worth it. Would need a page for it. */
+-#define flush_agp_cache() asm volatile("wbinvd":::"memory")
++#define flush_agp_cache() wbinvd()
+
+ #endif
--- /dev/null
+--- linux-2.6.8.1/drivers/char/drm/ati_pcigart.h 2004-08-14 11:56:14.000000000 +0100
++++ linux-2.6.8.1-xen0/drivers/char/drm/ati_pcigart.h 2004-09-05 06:14:51.751782846 +0100
+@@ -158,7 +158,7 @@
+ ret = 1;
+
+ #if defined(__i386__) || defined(__x86_64__)
+- asm volatile ( "wbinvd" ::: "memory" );
++ wbinvd();
+ #else
+ mb();
+ #endif
--- /dev/null
+diff -ru linux-2.6.8.1/drivers/mtd/maps/nettel.c linux-2.6.8.1-xen0/drivers/mtd/maps/nettel.c
+--- linux-2.6.8.1/drivers/mtd/maps/nettel.c 2004-10-21 15:59:29.000000000 -0600
++++ linux-2.6.8.1-xen0/drivers/mtd/maps/nettel.c 2004-10-22 09:12:17.000000000 -0600
+@@ -270,7 +270,7 @@
+ maxsize = AMD_WINDOW_MAXSIZE;
+
+ *amdpar = SC520_PAR(SC520_PAR_BOOTCS, amdaddr, maxsize);
+- __asm__ ("wbinvd");
++ wbinvd();
+
+ nettel_amd_map.phys = amdaddr;
+ nettel_amd_map.virt = (unsigned long)
+@@ -382,7 +382,7 @@
+ */
+ intel1addr = intel0addr + intel0size;
+ *intel1par = SC520_PAR(intel1cs, intel1addr, maxsize);
+- __asm__ ("wbinvd");
++ wbinvd();
+
+ maxsize += intel0size;
+
+@@ -408,7 +408,7 @@
+ intel1size = intel_mtd->size - intel0size;
+ if (intel1size > 0) {
+ *intel1par = SC520_PAR(intel1cs, intel1addr, intel1size);
+- __asm__ ("wbinvd");
++ wbinvd();
+ } else {
+ *intel1par = 0;
+ }